/*
基本语法
	编写 Java 程序时，应注意以下几点：
	大小写敏感：Java 是大小写敏感的，这就意味着标识符 Hello 与 hello 是不同的。
	类名：对于所有的类来说，类名的首字母应该大写。如果类名由若干单词组成，那么每个单词的首字母应该大写，例如 MyFirstJavaClass 。
	方法名：所有的方法名都应该以小写字母开头。如果方法名含有若干单词，则后面的每个单词首字母大写。
	源文件名：源文件名必须和类名相同。当保存文件的时候，你应该使用类名作为文件名保存（切记 Java 是大小写敏感的），文件名的后缀为 .java。（如果文件名和类名不相同则会导致编译错误）。
	主方法入口：所有的 Java 程序由 public static void main(String []args) 方法开始执行。
Java 对象和类
	构造方法
	每个类都有构造方法，如果没有 编译器将提供一个默认构造方法
	创建对象时候 至少要调用一个构造方法
	构造方法的名称必须与类同名，一个类可以有多个构造方法。

	public class Puppy{
	    public Puppy(){
	    }
	 
	    public Puppy(String name){
	        // 这个构造器仅有一个参数：name
	    }
	}
Java 基本数据类型
	Java 的两大数据类型:
		内置数据类型
		引用数据类型
	内置数据类型
		Java语言提供了八种基本类型。六种数字类型（四个整数型，两个浮点型），一种字符类型，还有一种布尔型。
		byte：	 数据类型是8位、有符号的，以二进制补码表示的整数；
			最小值是 -128（-2^7）；
			最大值是 127（2^7-1）；
			默认值是 0；
		short：
			short 数据类型是 16 位、有符号的以二进制补码表示的整数
			最小值是 -32768（-2^15）；
			最大值是 32767（2^15 - 1）；
			Short 数据类型也可以像 byte 那样节省空间。一个short变量是int型变量所占空间的二分之一；
			默认值是 0；
			例子：short s = 1000，short r = -20000。	
		int：
			int 数据类型是32位、有符号的以二进制补码表示的整数；			
		long：	
			long 数据类型是 64 位、有符号的以二进制补码表示的整数；
		float：
			float 数据类型是单精度、32位、符合IEEE 754标准的浮点数；
			float 在储存大型浮点数组的时候可节省内存空间；
			默认值是 0.0f；
			浮点数不能用来表示精确的值，如货币；
			例子：float f1 = 234.5f。	
		double：
			double 数据类型是双精度、64 位、符合IEEE 754标准的浮点数；
			浮点数的默认类型为double类型；
			double类型同样不能表示精确的值，如货币；
			默认值是 0.0d；
			例子：double d1 = 123.4。	
		boolean：
			boolean数据类型表示一位的信息；
			只有两个取值：true 和 false；
			这种类型只作为一种标志来记录 true/false 情况；
			默认值是 false；
			例子：boolean one = true。	
		char：
			char类型是一个单一的 16 位 Unicode 字符；
			最小值是 \u0000（即为0）；
			最大值是 \uffff（即为65,535）；
			char 数据类型可以储存任何字符；
			例子：char letter = 'A';。	
		类型默认值
			byte	0
			short	0
			int		0
			long	0L
			float	0.0f
			double	0.0d
			char	'u0000'
			String (or any object)	null
			boolean	false	
		引用类型
		
	Java 常量
			使用 final 关键字来修饰常量，声明方式和变量类似：
			final double PI = 3.1415927;			
	自动类型转换
		整型、实型（常量）、字符型数据可以混合运算。运算中，不同类型的数据先转化为同一类型，然后进行运算。
		转换从低级到高级。	
		byte,short,char—> int —> long—> float —> double 
		1. 不能对boolean类型进行类型转换。
		2. 不能把对象类型转换成不相关类的对象。
		3. 在把容量大的类型转换为容量小的类型时必须使用强制类型转换。
		4. 转换过程中可能导致溢出或损失精度，例如：	
			int i =128;   
			byte b = (byte)i;
			因为 byte 类型是 8 位，最大值为127，所以当 int 强制转换为 byte 类型时，值 128 时候就会导致溢出。
		5. 浮点数到整数的转换是通过舍弃小数得到，而不是四舍五入
			强制类型转换
			byte b = (byte)i1;//强制类型转换为byte
		Java 变量类型
		
		类变量（静态变量）
Java 修饰符
	访问控制修饰符				
		Java中，可以使用访问控制符来保护对类、变量、方法和构造方法的访问。Java 支持 4 种不同的访问权限。
		default (即缺省，什么也不写）: 在同一包内可见，不使用任何修饰符。使用对象：类、接口、变量、方法。
		private : 在同一类内可见。使用对象：变量、方法。 注意：不能修饰类（外部类）
		public : 对所有类可见。使用对象：类、接口、变量、方法
		protected : 对同一包内的类和所有子类可见。使用对象：变量、方法。 注意：不能修饰类（外部类）。、
Java Number & Math 类

	Java Character 类
		Character 类用于对单个字符进行操作。
		Character 类在对象中包装一个基本类型 char 的值
			 System.out.println(Character.toUpperCase('a'));
	Java String 类
		String greeting = "菜鸟教程";
		Java StringBuffer 和 StringBuilder 类
		当对字符串进行修改的时候，需要使用 StringBuffer 和 StringBuilder 类。
		和 String 类不同的是，StringBuffer 和 StringBuilder 类的对象能够被多次的修改，并且不产生新的未使用对象。		 
Java 数组
	声明数组变量
		double[] myList;  		
	创建数组
		 // 数组大小
	      int size = 10;
	      // 定义数组
	      double[] myList = new double[size];
	      myList[0] = 5.6;
	      myList[1] = 4.5;
	      myList[2] = 3.3;
	      myList[3] = 13.2;
	      myList[4] = 4.0;
	      myList[5] = 34.33;
	      myList[6] = 34.0;
	      myList[7] = 45.45;
	      myList[8] = 99.993;
	      myList[9] = 11123;	
	 处理数组
	 
	Arrays 类
	      
*/